home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / vietnam.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1986-03-22  |  10.1 KB  |  207 lines

  1. 1  WIDTH 80
  2. 10       KEY 1,"walk"+CHR$(13)
  3. 20       KEY 2,"gun"+CHR$(13)
  4. 30       KEY 3,"gren"+CHR$(13)
  5. 40       KEY 4,"RUN"+CHR$(13)
  6. 50       KEY 5,"FLAME"+CHR$(13)
  7. 60       KEY 6,"TALK"+CHR$(13)
  8. 70       KEY 7,"STATUS"+CHR$(13)
  9. 80       KEY 8,"KNIFE"+CHR$(13)
  10. 90       KEY 9,"KICK"+CHR$(13)
  11. 95       KEY 10,"PUNCH"+CHR$(13)
  12. 96       KEY ON
  13. 100        CLS
  14. 200       DEF SEG=&H40:RANDOMIZE PEEK(&H6C):DEF SEG
  15. 300       DIM B$(5):DIM E$(5):DIM E(5):DIM W$(10):DIM W(10):DIM D(5)
  16. 400       D(1)=5:D(2)=INT(RND(1)*5+5):D(3)=INT(RND(1)*5+7):D(4)=INT(RND(1)*5+9):D(5)=INT(RND(1)*10+10)
  17. 600       B$(1)="LEG"
  18. 700       B$(2)="ARM"
  19. 800       B$(3)="HEAD"
  20. 900       B$(4)="CHEST"
  21. 1000       B$(5)="FOOT"
  22. 1100       E$(2)=" WRINKLED OLD MAN ":E(2)=20
  23. 1200       E$(4)=" SNIPER ":E(4)=75
  24. 1300       E$(1)=" LITTLE CHILD ":E(1)=5
  25. 1400       E$(3)=" SOLDIER ":E(3)=50
  26. 1500       E$(5)=" HELICOPTER ":E(5)=300
  27. 1600      W$(1)=" MACHINE GUN"
  28. 1700      W$(2)=" KNIFE "
  29. 1800      W$(3)=" PUNCH "
  30. 1900      W$(4)=" DOLLAR BILL "
  31. 2000      W$(5)=" GRENADE "
  32. 2100      W$(6)=" FLAMETHROWER "
  33. 2200      W$(7)=" GOOD LUCK CHARM "
  34. 2300      W$(9)="ROUND "
  35. 2400      W$(10)="F-THROWER CHARGE "
  36. 2500      W$(8)=" DOGTAG "
  37. 2600      FOR N=1 TO 80:PRINT "-";:NEXT N
  38. 2700      PRINT "--------------------------------------COMBAT------------------------------------"
  39. 2800      FOR N=1 TO 80:PRINT "-";:NEXT N
  40. 2900      PRINT:PRINT:PRINT "                                THE EARL OF SMITH"
  41. 3000      PRINT: INPUT "WOULD YOU LIKE INSTRUCTIONS";X$
  42. 3100      IF X$<>"Y" AND X$<>"y" AND X$<>"YES" AND X$<>"yes" THEN 6700
  43. 3200      CLS
  44. 3210     FOR X=1 TO 5:PRINT:NEXT X:PRINT "********************************************************************************"
  45. 3220     PRINT"YOU ARE A SOLDIER BEHIND ENEMY LINES - A SEASONED COMBAT VETERAN WHO SOMEHOW"
  46. 3225     PRINT"BECAME SEPARATED FROM HIS PATROL - TRAPPED IN ENEMY TERRITORY!  YOU KNOW"
  47. 3230     PRINT"YOUR BASE IS ONLY 25 QUADRANTS AWAY, BUT EACH AND EVERY QUADRANT IS FILLED"
  48. 3235     PRINT"WITH ENEMY SOLDIERS AND SOMETIMES HOSTILE NATIVES.  THE BIGGEST QUESTION"
  49. 3240     PRINT"FACING YOU IS 'CAN I MAKE IT OUT ALIVE?'"
  50. 3241     PRINT:PRINT
  51. 3245     PRINT"                               <GOOD LUCK SOLDIER!!!>"
  52. 3250     PRINT"********************************************************************************"
  53. 3900      FOR X= 1 TO 8:PRINT:NEXT X: LINE INPUT "<HIT RETURN TO CONTINUE>";P$
  54. 4000      CLS
  55. 4100      PRINT "YOUR COMMANDS ARE:"
  56. 4200      PRINT
  57. 4300      PRINT "WALK":PRINT "----------":PRINT "THIS IS HOW YOU MOVE THROUGH"
  58. 4400      PRINT "THE JUNGLE"
  59. 4410     PRINT
  60. 4420     PRINT "RUN":PRINT "----------":PRINT "SOMETIMES YOU CAN ESCAPE FROM AN ENEMY THIS WAY --- DON'T COUNT ON IT THOUGH!"
  61. 4500      PRINT:PRINT "(GREN)ADE":PRINT "----------":PRINT "THIS IS A VERY POWERFUL WEAPON WHICH"
  62. 4600      PRINT "WILL KILL JUST ABOUT ANYTHING INSTANTLY.  HOWEVER, YOU CAN  "
  63. 4700      PRINT "INJURE YOURSELF SLIGHTLY WITH THIS WEAPON, SO USE IT CAREFULLY!"
  64. 4800      PRINT:PRINT "KNIFE":PRINT"----------":PRINT "THIS WEAPON CAN BE USED AGAIN AND AGAIN"
  65. 4900      PRINT "BUT THERE IS A CHANCE THAT IT WILL BREAK"
  66. 4990      PRINT:LINE INPUT "<HIT RETURN TO CONTINUE>";P$
  67. 5000      CLS:PRINT:PRINT "MACHINE GUN":PRINT "----------":PRINT "THIS IS PROBABLY THE WEAPON YOU "
  68. 5100      PRINT "WILL USE MOST OFTEN, BUT YOU WILL RUN OUT OF BULLETS IF YOU AREN'T CAREFUL"
  69. 5300      PRINT:PRINT "(FLAME)THROWER":PRINT"----------":PRINT "THIS IS A VERY DANGEROUS WEAPON BECAUSE IN USING THIS YOU MAY BLOCK YOUR ONLY"
  70. 5400      PRINT "ESCAPE PATH. HOWEVER, IT WILL KILL ANYTHING YOU SHOOT WITH IT"
  71. 5500      PRINT:PRINT "STATUS":PRINT"----------":PRINT "THIS WILL GIVE YOU THE NUMBER OF ROUNDS OF AMMUNITION, FLAME CHARGES, ETC., YOUR STRENGTH";
  72. 5600      PRINT " ,YOUR ENEMY'S STRENGTH, AND THE AMOUNT OF 'TREASURE' YOU HAVE"
  73. 5700      PRINT:PRINT "END":PRINT"----------":PRINT "ENDS THE GAME (AND YOUR LIFE)"
  74. 5890      PRINT:LINE INPUT"<HIT RETURN TO CONTINUE>";P$
  75. 5895     CLS:PRINT "TALK":PRINT"-----":PRINT "THIS COMMAND ALLOWS YOU TO TRY AND BE FRIENDLY TO THE NATIVES (OLD MEN, CHILDREN"
  76. 5896     PRINT "ETC.) BE CAREFUL THOUGH, BECAUSE EVEN THOSE LITTLE KIDDIES CAN BE DANGEROUS!"
  77. 5900      PRINT:PRINT:PRINT "YOUR ENEMIES RANGE IN STRENGTH (WEAKEST TO STRONGEST):"
  78. 6000      FOR X=1 TO 5:PRINT E$(X)", ";:NEXT X
  79. 6100      PRINT
  80. 6110     PRINT"WHEN AN ENEMY ATTACKS YOU,  POINTS ARE  SUBTRACTED FROM YOUR  STRENGTH,  WHICH"
  81. 6120     PRINT"STARTS AT 100. IF YOU KILL AN ENEMY YOU WILL GET WHATEVER HE POSSESSES - WEAPONS"
  82. 6130     PRINT"OR LOOT. THERE WILL BE TWENTY-FIVE RANDOM ENEMIES WAITING FOR YOU THROUGHOUT THE"
  83. 6140     PRINT"JUNGLE,  THE MORE OF THEM YOU KILL, THE MORE POINTS YOU GET..."
  84. 6600      PRINT :LINE INPUT "<HIT RETURN TO ENTER THE JUNGLE>";P$
  85. 6700     W(1)=1:W(2)=1:W(4)=0:W(5)=2:W(6)=1:W(7)=0:W(8)=0:W(9)=6:W(10)=1:S=100
  86. 6800     CLS
  87. 6900     E1=25
  88. 7000      REM MAIN PROCESSING LOOP
  89. 7100     IF L1=26 THEN GOTO 17300
  90. 7200      H=INT(RND(1)*5+1)
  91. 7300      IF O=1 THEN S=S-D(X):O=0:PRINT "**THE ";E$(X);" GETS YOU IN THE ";B$(H);"**"
  92. 7400      IF S<=0 THEN GOTO 18100
  93. 7500      PRINT "STRENGTH =";S;"      ";:PRINT "ENEMY STRENGTH =";Z(X)
  94. 7600      IF Z(X)>0 THEN 8400
  95. 7700     X=INT(RND(1)*5+1):L1=L1+1
  96. 7800     A=INT(RND(1)*100+1):IF A>20 THEN 8300
  97. 7900     A=INT(RND(1)*10+1)
  98. 8000     IF A=1 OR A=6 THEN 8300
  99. 8100     IF W(A)=0 THEN 8300
  100. 8200     PRINT "YOU SEEM TO HAVE DROPPED A ";W$(A);"IN YOUR HURRY!":W(A)=W(A)-1
  101. 8300      P=S+M+(W(1)*10)+(W(2)*5)+(W(3)*1)+W(4)+(W(5)*50)+(W(6)*10)+(W(7)*10)+(W(8)*100)+(W(9)*10)+(W(10)*50)
  102. 8400      PRINT:LINE INPUT "COMMAND>";R$
  103. 8500      IF Z(X)<=0 AND R$<>"END" AND R$<>"end" AND R$<>"WALK" AND R$<>"walk" AND R$<>"STATUS" AND R$<>"status" THEN 18500
  104. 8600     IF R$<>"WALK" AND R$<>"walk" AND R$<>"STATUS" AND R$<>"status" THEN PRINT "YOU ARE NOW FACING A ";E$(X)
  105. 8700     IF R$<>"PUNCH" AND R$<>"punch" AND R$<>"kick" AND R$<>"KICK" THEN 9300
  106. 8800     IF E$(X)=" HELICOPTER " OR E$(X)=" SNIPER " THEN PRINT "SURE, I ALWAYS GO AROUND ";R$;"ING A";E$(X):GOTO 8400
  107. 8900     Z(X)=Z(X)-2:IF Z(X)<=0 THEN PRINT "YOU ";R$;" THE";E$(X);" AND BLOOD SPURTS! THE ";E$(X);"IS DEAD."
  108. 9000     IF Z(X)<=0 THEN Z(X)=0:GOTO 16000
  109. 9100     PRINT "YOUR ";R$;" WOUNDS THE";E$(X):O=1
  110. 9200     GOTO 7000
  111. 9300      IF R$<>"run" AND R$<>"RUN" THEN 9700
  112. 9400     PRINT "YOU ATTEMPT TO RUN AWAY ---"
  113. 9500     A=INT(RND(1)*100+1):IF A<10 THEN PRINT "YOU ESCAPE INTO THE JUNGLE!!!":Z(X)=0:GOTO 7000
  114. 9600     PRINT "THE ";E$(X);"FOLLOWED YOU!":O=1:GOTO 7000
  115. 9700      IF R$<>"GUN" AND R$<>"gun" THEN 10900
  116. 9800     IF W(9)=0 THEN PRINT "YOU'RE OUT OF ROUNDS!":GOTO 8400
  117. 9900     IF W(1)=0 THEN PRINT "YOU DON'T HAVE A GUN!":GOTO 8400
  118. 10000      W(9)=W(9)-1
  119. 10100    A=INT(RND(1)*50+25)
  120. 10200     Z(X)=(Z(X)-A):IF Z(X)>0 THEN 10600
  121. 10300     PRINT "YOU FIRE A ROUND INTO THE ";E$(X);".":IF E$(X)=" HELICOPTER " THEN PRINT "THE HELICOPTER EXPLODES, KILLING THE PILOT AND GUNNER!":GOTO 16000
  122. 10400    IF R$<>" HELICOPTER " THEN PRINT "THE ";E$(X);"DIES WITH A GAPING WOUND IN HIS CHEST!"
  123. 10500     IF Z(X)<=0 THEN Z(X)=0:GOTO 16000
  124. 10600     IF R$<>" HELICOPTER " THEN PRINT "YOUR BULLET WOUNDS THE";E$(X):O=1
  125. 10700     IF R$=" HELICOPTER " THEN PRINT "YOUR BULLET STRIKES THE PILOT GLANCINGLY!"
  126. 10800      GOTO 7000
  127. 10900      IF R$<>"TALK" AND R$<>"talk" THEN 11700
  128. 11000     B=INT(RND(1)*100+1):IF E$(X)=" LITTLE CHILD " THEN B=B-30
  129. 11100      IF B>10 THEN 11400
  130. 11200     IF X=3 OR X=4 OR X=5 THEN 11400
  131. 11300     PRINT "THE KIND ";E$(X);" LED YOU SAFELY THROUGH ONE QUADRANT!":Z(X)=0:GOTO 7000
  132. 11400     PRINT "OBVIOUSLY THE ";E$(X);"WASN'T FRIENDLY, IT JUST ATTACKED YOU!"
  133. 11500      O=1
  134. 11600      GOTO 7000
  135. 11700      IF R$<>"FLAME" AND R$<>"flame" THEN 12500
  136. 11800      IF W(10)=0 THEN PRINT "YOU'RE OUT OF CHARGES!":GOTO 8400
  137. 11900      IF W(6)=0 THEN PRINT "YOU DON'T HAVE A FLAMETHROWER!":GOTO 8400
  138. 12000      W(10)=W(10)-1:Z(X)=0:C=INT(RND(1)*10+1)
  139. 12100      IF C>2 AND E$(X)=" HELICOPTER " THEN PRINT "THE HELICOPTER EXPLODES INTO FLAME!":GOTO 16000
  140. 12200     IF C>2 AND E$(X)<>" HELICOPTER " THEN PRINT "THE ";E$(X);" DIES IN FLAMING AGONY!":GOTO 16000
  141. 12300      IF C<3 THEN PRINT "YOU GOT THE SUCKER, BUT A MASSIVE FIRE STARTED AND YOU WERE SEVERELY BURNED":PRINT "BEFORE YOU GOT OUT!"
  142. 12400      S=S-20:GOTO 7000
  143. 12500      IF R$<>"KNIFE" AND R$<>"knife" THEN GOTO 13300
  144. 12600     IF W(2)<=0 THEN PRINT "YOU DON'T HAVE A KNIFE!":GOTO 8400
  145. 12700     IF E$(X)=" HELICOPTER " THEN PRINT "YOU CAN'T KNIFE A HELICOPTER!":GOTO  8400
  146. 12800    IF E$(X)=" SNIPER " THEN PRINT "YOU CAN'T KNIFE A SNIPER! HE'S IN THE TREES!":GOTO 8400
  147. 12900      A=INT(RND(1)*10+1):IF A=1 THEN W(2)=W(2)-1:PRINT "YOUR KNIFE BROKE!"
  148. 13000      A=INT(RND(1)*10+5):Z(X)=Z(X)-A:IF Z(X)<=O THEN PRINT "THE ";E$(X);"DIES QUICKLY - YOU WIPE YOUR KNIFE CLEAN ON HIS SHIRT."
  149. 13100      IF Z(X)<=0 THEN Z(X)=0:GOTO 16000
  150. 13200      PRINT "YOUR KNIFE SLASHES THE";E$(X);"BUT HE STAGGERS ERECT!":O=1:GOTO 7000
  151. 13300      IF R$<>"GREN" AND R$<>"gren" THEN 14100
  152. 13400    IF W(5)=0 THEN PRINT "YOU'RE OUT OF GRENADES":GOTO 8400
  153. 13500    A=INT(RND(1)*250+50):Z(X)=Z(X)-A:W(5)=W(5)-1
  154. 13600      A=INT(RND(1)*10+1):IF A<2 THEN PRINT "YOU WERE STRUCK BY A STRAY FRAGMENT!":S=S-5
  155. 13700      IF Z(X)<=0 AND E$(X)<>" HELICOPTER "THEN PRINT "THE ";E$(X);"DIES, PIECES OF HIS BODY LITTERING THE GROUND!"
  156. 13800    IF Z(X)<=0 AND E$(X)=" HELICOPTER " THEN PRINT "THE ";E$(X);"CRASHES TO THE GROUND IN FLAMES!"
  157. 13900      IF Z(X) <= 0 THEN Z(X)=0:GOTO 16000
  158. 14000      IF Z(X)>0 THEN PRINT "YOUR AIM WAS BAD - YOUR GRENADE JUST BARELY INJURED THE ";E$(X):O=1:GOTO 7000
  159. 14100      IF R$<>"WALK" AND R$<>"walk" THEN 14800
  160. 14200      IF Z(X)>0 THEN PRINT "YOU CAN'T WALK AWAY FROM AN ENEMY LIKE THAT!":GOTO 8400
  161. 14300      PRINT "LOCATION:  QUADRANT(";L1;")"
  162. 14400      Z(X)=E(X)
  163. 14500     M=M+Z(X)
  164. 14600      PRINT "YOU SEE A";E$(X);"APPROACHING"
  165. 14700      GOTO 7000
  166. 14800      IF R$<>"STATUS" AND R$<>"status" THEN 15600
  167. 14900      CLS
  168. 15000      PRINT "STATUS":PRINT"----------":PRINT "STRENGTH = ";S:PRINT "GUNS     = ";W(1)
  169. 15100      PRINT "KNIVES   = ";W(2):PRINT "DOLLARS  = ";W(4)
  170. 15200      PRINT "GRENADES = ";W(5):PRINT "FLAMETHROWERS     = ";W(6):PRINT "GOOD LUCK CHARMS  = ";W(7)
  171. 15300      PRINT "ROUNDS            = ";W(9):PRINT "F-THROWER CHARGES = ";W(10):PRINT "DOGTAGS           = ";W(8)
  172. 15400     PRINT "SCORE = ";P:PRINT "QUADRANT (";L1;")"
  173. 15500     GOTO 8400
  174. 15600     IF R$<>"END" AND R$<>"end" THEN 15800
  175. 15700     PRINT "I GUESS YOU KNOW WHAT HAPPENS TO PEOPLE WHO 'END' UP IN THE JUNGLE?":GOTO 18100
  176. 15800      PRINT "UNKNOWN COMMAND - PLEASE REENTER":GOTO 8400
  177. 15900      GOTO 7000
  178. 16000     Z=INT(RND(1)*10+1):IF Z=1 THEN Z=9
  179. 16100     IF Z=2 THEN Y=1
  180. 16200     IF Z=3 THEN Z=8
  181. 16300     IF Z=4 THEN Y=(INT(RND(1)*100+1))
  182. 16400     IF Z=5  THEN Y=2
  183. 16500     IF Z=6 THEN Z=10
  184. 16600     IF Z=7 THEN Y=1
  185. 16700     IF Z=8 THEN Y=1
  186. 16800     IF Z=9 THEN Y=2
  187. 16900     IF Z=10 THEN Y=(INT(RND(1)*2+1))
  188. 17000     W(Z)=W(Z)+Y:PRINT "THE DEAD ";E$(X);"HAD ";Y;W$(Z);:IF Y>1 THEN PRINT CHR$(8);"S"
  189. 17100     PRINT
  190. 17200     GOTO  7000
  191. 17300    REM END GAME
  192. 17400     CLS:FOR X=1 TO 5:PRINT:NEXT X:PRINT "                                ******************"
  193. 17500     PRINT "                                *****VICTORY!*****"
  194. 17600     PRINT "                                ******************"
  195. 17700     FOR X=1 TO 5:PRINT:NEXT X:PRINT "                         **YOUR BUDDIES WELCOME YOU BACK!**"
  196. 17750    PRINT  "***THE COMPANY COMMANDER AWARDS YOU THE BRONZE STAR FOR YOUR HEROIC ACTIONS***"
  197. 17800     PRINT "                             YOUR FINAL SCORE WAS ";P
  198. 17900     FOR X=1 TO 5000:NEXT X
  199. 18000     GOTO 18600
  200. 18100    FOR X=1 TO 2000:NEXT X
  201. 18150     CLS:FOR X=1 TO 5:PRINT:NEXT X:PRINT "  **YOUR BLOODY BODY LIES UNFOUND - EXCEPT BY THE CREATURES OF THE JUNGLE...**"
  202. 18200     PRINT "                         **YOU DIDN'T MAKE IT SOLDIER**"
  203. 18300     PRINT "                         **YOUR FINAL SCORE WAS ";P-100;"**"
  204. 18400    GOTO 18600
  205. 18500    PRINT "THERE'S NOONE HERE BUT YOU....MAYBE YOU WOULD LIKE TO WALK SOMEWHERE?":GOTO 8400
  206. 18600    FOR X=1 TO 10:PRINT:NEXT X:END
  207.